home *** CD-ROM | disk | FTP | other *** search
/ AOL File Library: 2,801 to 2,900 / aol-file-protocol-4400-2801-to-2900.zip / AOLDLs / Modem_Serial Utilities / UARTFIX_Fix System Lockups With / UARTFIX.exe / README.TXT next >
Text File  |  1994-03-06  |  7KB  |  168 lines

  1. UART.COM
  2. Written by Bob Nick 6 March 94
  3. This program provides status information and UART reset for 16550
  4. type UARTs.  
  5.  
  6.   This program was developed to resolve the problem of com port lockups 
  7. have been occuring in Pentium based computers.  The problem has been 
  8. traced to the Super I/O chip made by SMC that is part of the chipset
  9. used on many of the early Pentium systems.
  10.   The com port lockup problem only occurs when using an external device,
  11. such as a modem, that use programs that enable the 16550 mode of the  
  12. UART emulation.  Internal modems should not be affected by the problem,
  13. as they have a built in com port.
  14.  
  15. SYNTAX:
  16. uart <port#> 
  17. Port number may be 1, 2, 3, or 4
  18.  
  19. Additional command line parameters.
  20. Three options are provided for additional support.
  21. 1.  s or S  This option provides status information by checking the 
  22.     registers but does not reset the UART.
  23. 2.  q or Q  This option bypasses the screen display of the registers.
  24. 3.  r or R  Reset and leave in 16450 mode
  25.  
  26. Examples:
  27. uart 1  -- invoks the UART reset on port 1 and displays status info of the
  28.     registers prior to reset.
  29. uart 1 s  -- Reads the status registers of port 1, but does not reset the 
  30.     UART.
  31. uart 1 q -- Invokes the UART reset on port 1 but does not display the  
  32.     register status.
  33.  
  34. Status Display:
  35. The status display shows the following lines, preceeded by a two 
  36. character hex byte:
  37. Interrupt ID Register
  38. Interrupt Enable Register
  39. Modem Control Register
  40. Modem Status Register
  41. Line Status Register
  42. Line Control Register
  43. Receive Byte Register
  44.  
  45. Resets:
  46. The following is done during a modem reset:
  47. 1.  FIFO control register is placed into 16450 mode (power up condition).
  48. 2.  Modem control register is set to 0 (power up condition).
  49. 3.  Read interrupt ident, modem status, and line status registers, which
  50.     clear the registers.
  51. 4.  Read the receive data register.
  52. 5.  Set the receive FIFO on, with a trigger level of 8 or optionally
  53.     leave in the 16450 mode.
  54.  
  55. Interpretation of status words.
  56.     The status words have the lsb on the right character.  The following 
  57. is the meaning of the words.
  58. Line Status Register
  59. Bit
  60. 0   Data Ready
  61. 1   Overrun error
  62. 2   Parity Error
  63. 3   Framing Error
  64. 4   Break Interrupt (will normally be high)
  65. 5   Transmit Holding Register (high when ready to accept data)
  66. 6   Transmitter empty (High when both transmit FIFO and transmit shift 
  67.     register are empty in the 16550 mode, or when transmit holding register
  68.     and transmit shift register are empty in 16450 mode.
  69. 7   0 in 16450 mode, set with an parity, framing, or break indication in
  70.     FIFO mode.
  71.  
  72. Interrupt ID Register
  73. Bit
  74. 0   Low when interrupt is pending
  75. 1,2 Identifies the interrupt that is pending.
  76. 3   Low in 16450, High when timeout interrupt is pending in 16550.
  77. 4,5 Always low.
  78. 6,7 High when FIFO is enabled.
  79.  
  80. Modem Status Register
  81. Bit
  82. 0   Delta Clear to send, changes when CTS input has changed.
  83. 1   Delta Data Set Ready, changes when DSR input has changed.
  84. 2   Trailing edge of Ring Indicator, RI has changed from high to low.
  85. 3   Delta Data Carrier Detect, changes when DCC has changed.
  86. 4   Bit complement to CTS.
  87. 5   Bit complement to DSR.
  88. 6   Bit complement of RI.
  89. 7   Bit complement of DCD.
  90.  
  91. Receive Byte Register--actual received data pending.
  92.  
  93. Line Control Register
  94. Bit
  95. 0,1 Character length, both high for 8 bit.
  96. 2   Low for one stop bit, high for 2.
  97. 3   When high parity is enabled.
  98. 4   When high even parity is selected.
  99. 5   Stick parity bit.
  100. 6   Break Control bit.
  101. 7   Divisor Latch Access bit
  102.  
  103. Interrupt Enable Register
  104. Bit
  105. 0   Enables Received Data available interrupt
  106. 1   Enables the transmitter holding register empty interrupt.
  107. 3   Enables the modem status interupt.
  108. THe rest of the bits are always low.
  109.  
  110. Modem Control Register
  111. Bit
  112. 0   DTR output.
  113. 1   RTS output.
  114. 2   Output 1 signal.
  115. 3   Output 2 signal.
  116. 4   Loopback for testing.
  117. 5-7 Low
  118.  
  119. Typical register values from my computer on internal Sportster modem.
  120. Interrupt ID            01 for 16450, C1 for 16550 mode
  121. Interrupt Enable Reg    00
  122. Modem Control Register  00
  123. Modem Status Register   30
  124. Line Status Register    60
  125. Line Control Register   03
  126. Receive byte            XX  (Don't care)
  127.  
  128. This program may be placed into a batch file with the proper parameters, 
  129. called from the dos command line, or run from Windows from the DOS prompt,
  130. using the run command, or by setting up a program item to call the 
  131. program with the desired parameters.
  132.  
  133. WARNING--If you have the ATI Graphics Ultra Pro, do not use the program
  134. on COM4, as that will cause some problems with the 8514/A mode that 
  135. lies at that address.
  136.  
  137.   I have included a .pif file, which needs to be changed with the pif editor
  138. to reflect the correct path, and a batch file, which also needs to be
  139. changed to reflect the correct path and port number.  The pause in the 
  140. batch file will cause the program to stop in the full screen mode if you
  141. are in windows and allow the viewing of the register values.  That 
  142. statement may be removed.
  143.   The best use of the program is to run it right after each com session 
  144. before starting the next one.  It will clear the 16550 and should keep
  145. the port from locking up.  I have also included an ICON for anyone 
  146. interested.
  147.   For information on membership in Gateway User's International, please
  148. email Jack Ballinger at FPJA02A on Prodigy, or FPJA02A@Prodigy.com from
  149. the Internet.  Membership is open to all Gateway users by sending your 
  150. name and address to the above address.
  151.   For questions/comments regarding the program, UART.COM, email Bob Nick
  152. at FPHE65C on Prodigy, or rnick@nyx10.cs.du.edu on the Internet or on  
  153. ILINK, Robert Nick in the Gateway conference.  The program was written 
  154. assembly language and assembled on a Borland TASM 3.0 assembler.
  155.   This software has been successfully tested on three Pentium systems
  156. known to have com port lockup problems.
  157.  
  158. ****************************************************************************
  159. * DISCLAIMER:  This program is provided free of charge by Gateway User's   *
  160. * International and Bob Nick.  The program is provided "as is" and is      *
  161. * to be used entirely at the user's risk.  Bob Nick, GUI, and Gateway 2000 *
  162. * are not responsible for any misuse or problems that may occur.  This     *
  163. * program may be distributed freely but must include the readme.txt file   * 
  164. * with this disclaimer.  No person or organization my sell or charge for   *
  165. * this software.                                                           *       *
  166. ****************************************************************************
  167.  
  168.